package com.kinglone.back.comment.controller;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import com.kinglone.back.comment.model.Comment;
import com.kinglone.back.comment.service.CommentService;
import com.kinglone.common.entity.DateJsonValueProcessor;
import com.kinglone.common.entity.PageBean;
import com.kinglone.common.utils.ResponseUtil;

@Controller
@RequestMapping("/back/comment")
public class CommentController {

	@Autowired
	private CommentService commentService;
	
	/**
	 * 分页查询评论列表
	 * @param page
	 * @param rows
	 * @param response
	 * @return
	 * @throws Exception
	 */
	@RequestMapping("/list")
	public String list(@RequestParam(value="page",required=false)String page,@RequestParam(value="rows",required=false)String rows,
			@RequestParam(value="state",required=false)String state,HttpServletResponse response)throws Exception{
			
			PageBean pageBean = new PageBean(Integer.parseInt(page),Integer.parseInt(rows));
			Map<String,Object> map = new HashMap<String, Object>();
			map.put("start", pageBean.getStart());
			map.put("size", pageBean.getPageSize());
			map.put("state", state);
			List<Comment> commentList = commentService.list(map);
			Long total = commentService.getTotal(map);
			JSONObject result = new JSONObject();
			JsonConfig jsonConfig = new JsonConfig();
			jsonConfig.registerJsonValueProcessor(java.util.Date.class, new DateJsonValueProcessor("yyyy-MM-dd"));
			JSONArray jsonArray = JSONArray.fromObject(commentList, jsonConfig);
			result.put("rows", jsonArray);
			result.put("total", total);
			ResponseUtil.write(response, result);
			return null;
	}
	/**
	 * 删除评论
	 * @param ids
	 * @param response
	 * @return
	 * @throws Exception
	 */
	@RequestMapping("/delete")
	public String delete(@RequestParam(value="ids")String ids,HttpServletResponse response)throws Exception{
		String[] arrIds = ids.split(",");
		for(int i=0;i<arrIds.length;i++){
			commentService.delete(Integer.parseInt(arrIds[i]));
		}
		JSONObject result = new JSONObject();
		result.put("success", true);
		ResponseUtil.write(response, result);
		return null;
	}
	
	/**
	 * 审核评论
	 * @param ids
	 * @param state
	 * @param response
	 * @return
	 * @throws Exception
	 */
	@RequestMapping("/review")
	public String review(@RequestParam(value="ids")String ids,@RequestParam(value="state")Integer state,HttpServletResponse response)throws Exception{
		String[] arrIds = ids.split(",");
		for(int i=0;i<arrIds.length;i++){
			Comment comment = new Comment();
			comment.setState(state);
			comment.setId(Integer.parseInt(arrIds[i]));
			commentService.update(comment);
		}
		JSONObject result = new JSONObject();
		result.put("success", true);
		ResponseUtil.write(response, result);
		return null;
	}
}
